home *** CD-ROM | disk | FTP | other *** search
- /* TextureStudio ARexx script **************************************/
-
- /* Allow commands to return results */
-
- options results
-
- /* On error, goto ERROR:. Comment out this line if you wish to */
- /* perform your own error checking. */
-
- signal on error
-
- /* BEGIN PROGRAM *************************************************/
-
- /* Constants */
-
- AXIS_SLANT = 12
-
- address "TEXTURESTUDIO"
-
- /* Bring TextureStudio's screen to the front */
-
- SCREEN_FRONT
-
- /* Stop input to windows */
-
- GUI_BLOCK
-
- /* Get user's texture path */
-
- TEXTUREPATH_GET VAR 'texture_path'
-
- /* Ask user to select gasgiant texture */
-
- REQUEST_FILE PATHPART '"'texture_path'"' FILEPART '"GasGiant.itx"',
- PATTERN '"#?.itx"' TITLE '"Select GasGiant texture"' VAR 'texture_file'
-
- /* Ask user for destination path */
-
- REQUEST_DIR PATHPART '"Ram:"' TITLE '"Select destination directory"',
- VAR 'dest_path'
-
- /* Ask user to select number of frames */
-
- REQUEST_MESSAGE TEXT '"Select the number of frames"',
- BUTTONTEXT '"75|50|25|10"' VAR 'selected'
-
- select
- when selected = 0 then no_frames = 10
- when selected = 1 then no_frames = 75
- when selected = 2 then no_frames = 50
- when selected = 3 then no_frames = 25
- end
-
- /* Open selected texture and flush out all others */
-
- OPEN '"'texture_file'"' FLUSH
-
- /* Set axis on slight slant */
-
- AXIS_SET Y_ALIGNMENT AXIS_SLANT
-
- /* Map image onto plane */
-
- OBJECT_SET SPHERE
-
- /* Render each frame */
-
- do frame = 1 to no_frames
- angle = ( (frame - 1) / no_frames) * 360 - 180
-
- /* Set axis z alignment */
-
- AXIS_SET Z_ALIGNMENT angle
-
- /* Render screen in background */
-
- RENDER TOBACK
-
- /* Save out renderscreen */
-
- dest_filepart = 'Frame' || (frame + 99) || '.HAM'
- FILE_JOIN PATHPART '"'dest_path'"',
- FILEPART '"'dest_filepart'"' VAR 'dest_file'
-
- RENDERSCREEN_SAVE FILE '"'dest_file'"' FORCE
- end
-
- /* Allow input back to windows */
-
- GUI_UNBLOCK
-
- /* END PROGRAM ***************************************************/
-
- exit
-
- /* On ERROR */
-
- ERROR:
-
- /* If we get here, either an error occurred with the command's */
- /* execution or there was an error with the command itself. */
- /* In the former case, rc2 contains the error message and in */
- /* the latter, rc2 contains an error number. SIGL contains */
- /* the line number of the command which caused the jump */
- /* to ERROR: */
-
- if datatype(rc2,'NUMERIC') == 1 then do
- /* See if we can describe the error with a string */
-
- select
- when rc2 == 103 then
- err_string = "ERROR 103, "||,
- "out of memory at line "||SIGL
- when rc2 == 114 then
- err_string = "ERROR 114, "||,
- "bad command template at line "||SIGL
- when rc2 == 115 then
- err_string = "ERROR 115, "||,
- "bad number for /N argument at line "||SIGL
- when rc2 == 116 then
- err_string = "ERROR 116, "||,
- "required argument missing at line "||SIGL
- when rc2 == 117 then
- err_string = "ERROR 117, "||,
- "value after keywork missing at line "||SIGL
- when rc2 == 118 then
- err_string = "ERROR 118, "||,
- "wrong number of arguments at line "||SIGL
- when rc2 == 119 then
- err_string = "ERROR 119, "||,
- "unmatched quotes at line "||SIGL
- when rc2 == 120 then
- err_string = "ERROR 120, "||,
- "line too long at line "||SIGL
- when rc2 == 236 then
- err_string = "ERROR 236, "||,
- "unknown command at line "||SIGL
- otherwise
- err_string = "ERROR "||rc2||" at line "||SIGL
- end
- end
- else if rc2 == 'RC2' then do
- err_string = "ERROR in command at line "||SIGL
- end
- else do
- err_string = rc2||", line "||SIGL
- end
-
- say err_string
-
- /* Unblock windows, just incase they are still blocked by the program being */
- /* terminated mid-way */
-
- GUI_UNBLOCK
-
- exit
-